package cn.java.lambda.test3;

import java.util.function.Function;

/**
 * 测试Function<T,R>函数式接口
 * @author 攀博课堂(www.pbteach.com)
 * @version 1.0
 **/
public class TestFunction {

    public static void main(String[] args) {
//        testApply();

        testAndThen();
    }

    //定义测试方法
    public static  void testApply(){

        //输入一个字符串，输出这个字符串的长度
        Function<String,Integer> function1 = (String p1)->{
            //得到字符串长度
            return p1.length();
        };

        //简化
        Function<String,Integer> function2 = p1->p1.length();

        System.out.println(function1.apply("www.pbteach.com"));
        System.out.println(function2.apply("www.pbteach.com"));
    }

    //测试andThen方法
    public static void testAndThen(){
        //前边的一个操作
        Function<String,String> before = s1 -> "www."+s1;
        //后边的一个操作
        Function<String,String> after = s1 -> s1+".com";
        //调用before的andThen方法，实现前后执行两个操作
        String pbteach = before.andThen(after).apply("pbteach");
        System.out.println(pbteach);
    }

}
